//juqery的核心函数  文档加载完毕自动调用
$(function (){
    getData();
})
//封装ajax 发送请求获取Tree数据
function getData(){
    //ajax 请求数据库，后台返回一个tree需要的数据，及对应的格式
    $.ajax({
        type: 'post',
        url: '/getTree',
        data: {},
        dataType: 'json',
        success: function (res) {
            //请求成功的回调，res返回的数据
            //渲染
            getTree(res)
        },
        error: function (e) {
            console.log(e);
            console.log("请求失败")
        }
    })
}

var layindex = null;
//封装方法渲染Tree，方便自动更新页面
function getTree(data) {
    layui.use(['tree','layer','jquery','form'], function () {
        var tree = layui.tree;
        var layer = layui.layer;
        var $ = layui.$;
        var form = layui.form;
        tree.render({
            elem: '#test1',
            id:'demoId',
            data: data,
            showCheckbox:true,
            edit: ['add', 'update', 'del'],//自定义属性，然后修改源码
            customOperate: true,
            oncheck: function(obj){
                // console.log(obj.data); //得到当前点击的节点数据
                // console.log(obj.checked); //得到当前节点的展开状态：open、close、normal
                // console.log(obj.elem); //得到当前节点元素
                $("[name=id]").val(obj.data.id)
                $("[name=title]").val(obj.data.title)
            },
            //操作的回调函数
            operate: function (obj) {
                //得到操作类型
                var type = obj.type;
                //得到当前节点的数据
                var data = obj.data;


                if (type === 'add') {
                    $('#addpid').val(obj.data.id)
                    layindex = layer.open({
                        type: 1,
                        title: '添加节点',
                        content: $('#addnode'),
                        area: ['85%', '85%']
                    })
                } else if (type === 'update') {
                    $('#upsid').val(obj.data.id)
                    layindex = layer.open({
                        type: 1,
                        title: '修改节点',
                        content: $('#upnode'),
                        area: ['85%', '85%']
                    })
                } else if (type === 'del') {
                    layer.confirm('确定要删除吗？', function (index) {
                        $.ajax({
                            type: 'post',
                            url: '/deClassesTree',
                            data: {'id': obj.data.id},
                            dataType: 'json',
                            success: function (res) {
                                if (res.state == '200') {
                                    layer.msg('删除成功', {time: 500, icon: 6}, function () {
                                        //弹框的关闭
                                        layer.close(index);
                                        //刷新树
                                        getData();
                                    })
                                }else{
                                    layer.msg("删除节点失败",{time: 1000,icon:5},function (){
                                        //先得到当前iframe层的索引
                                        let index = parent.layer.getFrameIndex(window.name);
                                        //再执行关闭
                                        parent.layer.close(index);

                                    })
                                }
                            },
                            error: function (e) {
                                console.log(e);
                            }
                        })
                    })
                }
            }
        })

        form.on('submit(qd)',function (d){
            var id = $("[name=id]").val()
            var title = $("[name=title]").val()
            parent.subData(id,title)
            var index = parent.layer.getFrameIndex(window.name);
            parent.layer.close(index);
        })
    })
}
